﻿using System;
using System.Collections.Generic;
using ClickLand.CorporacionPlaza.Presentacion.CorporacionPlazaWS;
using ClickLand.Web.UI.WebControls;

namespace ClickLand.CorporacionPlaza.Presentacion.Contratos.AdministracionContrato
{
    /// <summary>s Interface que hace de contrato para la vista que administra los contratos </summary>
    public interface IAdministrarContrato
    {
        #region Busqueda

        /// <summary> Propiedad que obtiene y asigna el tipo de establecimiento para la busqueda </summary>
        ClickLandDropDownList TipoEstablecimientoBusqueda { get; }


        /// <summary> Propiedad que obtiene el nombre comercial para la busqueda </summary>
        string NombreComercialBusqueda { get; set; }


        /// <summary> Propiedad que obtiene el nombre del cliente para la busqueda </summary>
        string NombreClienteBusqueda { get; set; }


        /// <summary> Propiuedad que asgina u obtiene la lista de contratos consultados </summary>
        List<ContratoDto> ListaContratos { get; set; }

        #endregion

        #region Detalle

        /// <summary> Propiedad que asigna el valor del nombre del cliente para la Detalle </summary>
        string NombreClienteDetalle { set; }


        /// <summary> Propiedad que asigna el valor de la fecha de inicio del contrato para la Detalle </summary>
        string FechaInicioDetalle { set; }


        /// <summary> Propiedad que asigna el valor de la fecha de finalizacion del contrato para la Detalle </summary>
        string FechaFinDetalle { set; }


        /// <summary> Propiedad que asigna el nombre del establecimiento para la Detalle </summary>
        string EstablecimientoDetalle { set; }


        /// <summary> Propiedad que asigna el porcentaje de venta para el contrato para la Detalle </summary>
        string PorcentajeDetalle { set; }


        /// <summary> Propiedad que asigna el tipo de firma el contrato para la Detalle </summary>
        string TipoFirmaDetalle { set; }


        /// <summary> Propiedad que asigna el nombre del firmante contrato para la Detalle </summary>
        string NombreFirmanteDetalle { set; }


        /// <summary> Propiedad que asigna el nombre del firmante contrato para la Detalle </summary>
        string NombreFirmante2Detalle { set; }
        
        
        /// <summary> Propiedad que asigna el nombre del firmante contrato para la Detalle </summary>
        string NombreFirmante3Detalle { set; }


        /// <summary> Propiedad que asgina la visibilidad de otros firmantes </summary>
        bool HayOtroFirmantes { set; }


        /// <summary> Propiedad que obtiene el nombre comercial en la comercial </summary>
        string NombreComercialDetalle { set; }


        /// <summary> Propiedad que da valor a la lista de canon ingresado por el cliente </summary>
        ContratoPensionDto[] ListaCanonDetalle { set; }


        /// <summary> Propiedad que asgina el tipo de Incremento en la Detalle </summary>
        string TipoIncrementoDetalle { set; }


        /// <summary> Propiedad que asgina la informacion del fiador en la Detalle </summary>
        FiadorDto[] FiadorDetalle { set; }


        /// <summary> Propiedad que asgina el valor al monto de garantia ingresado por el usuario </summary>
        string MontoGarantiaDetalle { set; }


        /// <summary> Propiedad que asgina la informacion de la poliza en la Detalle </summary>
        PolizaDto[] PolizaDetalle { set; }


        /// <summary> Propiedad que obtiene la informacion del contrato </summary>
        ContratoDto Contrato { get; set; }

        #endregion

        #region Fiador
        /// <summary> Propiedad que obtiene si el tipo de garantia es fiador </summary>
        bool GarantiaFiador { get; }


        /// <summary> Propiedad que obtiene el nombre del fiador </summary>
        string NombreFiador { get; set; }


        /// <summary> Propiedad que obtiene el numero de cedula ingresado por el usuario </summary>
        string CedulaFiador { get; set; }


        /// <summary> Propiedad que obtiene el numero de telefono </summary>
        string NumeroTelefonoFiador { get; set; }


        /// <summary> Propiedad que obtiene el correo electronico del fiador </summary>
        string CorreoFiador { get; set; }


        /// <summary> Monto de la garantia ingresada </summary>
        string MontoGaranta { get; set; }


        /// <summary> Propiedad que obtiene el tipo de documento seleccionado </summary>
        ClickLandDropDownList TipoDocumento { get; }

        #endregion

        #region Poliza

        /// <summary> Fecha de emision de la poliza </summary>
        DateTime FechaEmisionPoliza { get; set; }


        /// <summary> Fecha de vencimiento de poliza </summary>
        DateTime FechaVencimientoPoliza { get; set; }


        /// <summary> Propiedad que obtiene el monto de la poliza </summary>
        string MontoPoliza { get; set; }


        /// <summary> Propiedad que obtiene el nombre de la empresa aseguradora </summary>
        string EmpresaAsegurador { get; set; }


        /// <summary> Propiedad que obtiene el nombre del beneficiario de la poliza </summary>
        string NombreBeneficiarioPoliza { get; set; }

        #endregion

        #region Datos Principales

        /// <summary> Propiedad que obtiene el control que lista los tipos de firmas seleccionado </summary>
        ClickLandDropDownList TipoFirma { get; }


        /// <summary> Propiedad que obtiene el control que lista el canon </summary>
        ClickLandGridView ListaCanon { get; }


        /// <summary> Propiedad que obtiene la fecha de inicio del contrato </summary>
        DateTime FechaInicioContrato { get; set; }


        /// <summary> Propiedad que obtiene la fecha fin del contrato </summary>
        DateTime FechaFinContrato { get; set; }


        /// <summary> Propiedad que obtiene el porcentaje de venta indicado </summary>
        string PorcentajeVenta { get; set; }


        /// <summary> Propiedad que obtiene el porcentaje de venta indicado </summary>
        string NombreFirmante { get; set; }


        /// <summary> Propiedad que obtiene el porcentaje de venta indicado </summary>
        string NombreFirmante2 { get; set; }


        /// <summary> Propiedad que obtiene el porcentaje de venta indicado </summary>
        string NombreFirmante3 { get; set; }


        /// <summary> Propiedad que obtiene el nombre del comercial </summary>
        string NombreComercial { get; set; }


        /// <summary> Propiedad que asigna la lista de recaudos del contrato </summary>
        RecaudoDto[] ListaRecaudos { get; set; }

        string TituloReporte { get; }

        #endregion
    }
}
